CJK Windows: Silence gtk_style_context_set_state() warnings
authorChun-wei Fan <fanchunwei@src.gnome.org>
Fri, 8 Jan 2016 10:44:24 +0000 (18:44 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Fri, 8 Jan 2016 15:37:31 +0000 (23:37 +0800)
We need to update calls to gtk_style_context_set_state() in
gtkimcontextime.c, so that the state passed into that function would be in
line with what GtkStyleContext expects, due to updates in the CSS
machinery, as outlined in this link[1], which is based on information in
in Matthias' blog[2].

Doing so will silence the gtk_style_context_set_state() warnings, which is
emitted when a widget uses gtkimcontext on Windows with CJK IME, which will
in turn call gtkimcontextime.

[1]: http://feaneron.com/2016/01/04/quick-guide-to-port-an-app-for-gtk-3-20/
[2]: https://blogs.gnome.org/mclasen/2015/11/20/a-gtk-update/

https://bugzilla.gnome.org/show_bug.cgi?id=760314

modules/input/gtkimcontextime.c

index 5d2c15a329fc801abe66d2a8cb254cc410fcce5b..d76f180d6dedf3762e0d2f147c69d54d7bf2cb1f 100644 (file)
@@ -941,7 +941,14 @@ gtk_im_context_ime_set_preedit_font (GtkIMContext *context)
     }
 
   style = gtk_widget_get_style_context (widget);
-  gtk_style_context_get (style, GTK_STATE_FLAG_NORMAL, "font", &font_desc, NULL);
+  gtk_style_context_save (style);
+  gtk_style_context_set_state (style, GTK_STATE_FLAG_NORMAL);
+  gtk_style_context_get (style,
+                         gtk_style_context_get_state (style),
+                         "font",
+                         &font_desc,
+                         NULL);
+  gtk_style_context_restore (style);
   
   if (lang[0])
     {